package converters;

import entidades.Equipamento;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
import persistencia.RepositorioJPAEquipamentos;


@FacesConverter(value = "EquipamentoConverter")
public class ConverterEquipamento implements Converter {

	public RepositorioJPAEquipamentos repositorio = new RepositorioJPAEquipamentos();

	public Object getAsObject(FacesContext facesContext, UIComponent component,
			String submittedValue) {
		if (submittedValue.trim().equals("")) {
			return null;
		} else {
			try {
        			int number = Integer.parseInt(submittedValue);
                                Equipamento equipamento = (Equipamento)repositorio.getById(number);
                                return equipamento;

			} catch (NumberFormatException exception) {
				throw new ConverterException(new FacesMessage(
						FacesMessage.SEVERITY_ERROR, "Conversion Error",
						"Não é um equipamento válido"));
			}
		}	
	}

	public String getAsString(FacesContext facesContext, UIComponent component,
			Object value) {
		if (value == null || value.equals("")) {
			return "";
		} else {
			return String.valueOf(((Equipamento) value).getNumeroPatrimonio());
		}
	}

}